<HTML>

<SCRIPT>
function setFocus() {	
	if ((navigator.appName != "Netscape") && (parseFloat(navigator.appVersion) == 2)) {
	return;
	} else {
	self.focus();
	}
}
</SCRIPT><HEAD><TITLE>Index</TITLE></HEAD>

<BODY
	BGCOLOR		= #FFFFFF
	TEXT = #000000
onLoad="setFocus()";
>

<P>Names of design patterns appear in small capitals: e.g., A<FONT
SIZE=-1>DAPTER</FONT>.  Page numbers in bold indicate the definition
of a term. Numbers in italics indicate a diagram for the term.
Letters after a diagram's page number indicate the kind of diagram:
a "c" denotes a class diagram, an "i" denotes an interaction diagram,
and an "o" denotes an object diagram. For example, <I>88co</I>
means that a class and object diagram appears on page 88.</P>

<H2>A</H2>

<DL>

<DT><a name="abstract class"></a>abstract class
<A HREF="chap1fs.htm#abstractclass" TARGET="_mainDisplayFrame"><B>15</B></A>,
<A HREF="chap1fs.htm#absclass" TARGET="_mainDisplayFrame"><I>16c</I></A>,
<A HREF="chapAfs.htm#abstractclass" TARGET="_mainDisplayFrame"><B>359</B></A>,
<A HREF="chapBfs.htm#abstractclass" TARGET="_mainDisplayFrame">364</A>,
<A HREF="chapBfs.htm#absclass" TARGET="_mainDisplayFrame"><I>365c</I></A>
</DT>

<DT>abstract coupling, <I>see</I> <A HREF="index-C.htm#coupling" target="TEXT">coupling, abstract</A></DT>

<DD>in O<FONT SIZE=-1>BSERVER</FONT>
<A HREF="pat5gfs.htm#abscoup" TARGET="_mainDisplayFrame">296</A>
</DD>

<a name="A<FONT SIZE=-1>BSTRACT</FONT>"></a>
<DT>A<FONT SIZE=-1>BSTRACT</FONT> F<FONT SIZE=-1>ACTORY</FONT>
<A HREF="pat3afs.htm#top" TARGET="_mainDisplayFrame"><B>87</B></A>
</DT>

<DD>extensibility of
<A HREF="pat3afs.htm#extensible" TARGET="_mainDisplayFrame">91</A>
</DD>

<DD>in catalog summary
<A HREF="chap1fs.htm#absfact" TARGET="_mainDisplayFrame">8</A>
</DD>

<DD>Lexi's use of
<A HREF="chap2fs.htm#absfact" TARGET="_mainDisplayFrame">51</A>
</DD>

<DD>used to configure a subsystem
<A HREF="pat4efs.htm#absfact" TARGET="_mainDisplayFrame">193</A>
</DD>

<DT>Abstract Factory</DT>

<DD>participant of A<FONT SIZE=-1>BSTRACT</FONT> F<FONT SIZE=-1>ACTORY</FONT>
<A HREF="pat3afs.htm#structure" TARGET="_mainDisplayFrame"><I>88c</I></A>,
<A HREF="pat3afs.htm#participants" TARGET="_mainDisplayFrame">89</A>
</DD>

<DT>abstract operation, <I>see</I> <A HREF="index-O.htm#operation " target="TEXT">operation, abstract </A></DT>

<DD>use to implement A<FONT SIZE=-1>DAPTER</FONT>
<A HREF="pat4afs.htm#absops" TARGET="_mainDisplayFrame">144</A>
</DD>

<DT>abstract syntax tree
<A HREF="pat5cfs.htm#abssyntree" TARGET="_mainDisplayFrame">244</A>,
<A HREF="pat5cfs.htm#abssyntree2" TARGET="_mainDisplayFrame">251</A>,
<A HREF="pat5kfs.htm#abssyntree" TARGET="_mainDisplayFrame">331</A>
</DT>

<DD>class structure for
<A HREF="pat5cfs.htm#abssynclass" TARGET="_mainDisplayFrame"><I>244c</I></A>,
<A HREF="pat5kfs.htm#abssync" TARGET="_mainDisplayFrame"><I>331c</I></A>
</DD>

<DD>constructing in Smalltalk
<A HREF="pat5cfs.htm#buildabssyn" TARGET="_mainDisplayFrame">250</A>
</DD>

<DD>object structure for
<A HREF="pat5cfs.htm#abssync" TARGET="_mainDisplayFrame"><I>244o</I></A>
</DD>

<DT>AbstractExpression</DT>

<DD>participant of I<FONT SIZE=-1>NTERPRETER</FONT><A HREF="pat5cfs.htm#structure" TARGET="_mainDisplayFrame"><I>245c</I></A>,
<A HREF="pat5cfs.htm#participants" TARGET="_mainDisplayFrame">245</A>
</DD>

<DT>Abstraction</DT>

<DD>participant of B<FONT SIZE=-1>RIDGE</FONT>
<A HREF="pat4bfs.htm#structure" TARGET="_mainDisplayFrame"><I>153c</I></A>,
<A HREF="pat4bfs.htm#participants" TARGET="_mainDisplayFrame">154</A>
</DD>

<DT>AbstractProduct</DT>

<DD>participant of A<FONT SIZE=-1>BSTRACT</FONT> F<FONT SIZE=-1>ACTORY</FONT>
<A HREF="pat3afs.htm#structure" TARGET="_mainDisplayFrame"><I>88c</I>,</A>
<A HREF="pat3afs.htm#participants" TARGET="_mainDisplayFrame">89</A>
</DD>

<DT>accumulating state
<A HREF="pat5kfs.htm#accumulatingstate" TARGET="_mainDisplayFrame">336</A>
</DT>

<DT><a name="acquaintance"></a>acquaintance
<A HREF="chap1fs.htm#acq" TARGET="_mainDisplayFrame"><B>22</B></A>,
<A HREF="chapAfs.htm#acquaintancerelationship" TARGET="_mainDisplayFrame"><B>359</B></A>
</DT>

<DD>C++, defined in
<A HREF="chap1fs.htm#Cplusplus" TARGET="_mainDisplayFrame">23</A>
</DD>

<DD>compared with aggregation
<A HREF="chap1fs.htm#aggacq" TARGET="_mainDisplayFrame">23</A>
</DD>

<DD>Smalltalk, defined in
<A HREF="chap1fs.htm#aggacq" TARGET="_mainDisplayFrame">23</A>
</DD>

<DT>Action, <I>see</I> <A HREF="index-C.htm#C<FONT SIZE=-1>OMMAND</FONT>" target="TEXT">C<FONT SIZE=-1>OMMAND</FONT></A></DT>

<DT>active iterator, <I>see</I> <A HREF="index-I.htm#iterator" target="TEXT">iterator, active</A></DT>

<DT>Ada
<A HREF="chap1fs.htm#ada" TARGET="_mainDisplayFrame">4</A>,
<A HREF="chap1fs.htm#ada" TARGET="_mainDisplayFrame">21</A>
</DT>

<DT>Adaptee</DT>

<DD>participant of A<FONT SIZE=-1>DAPTER</FONT>
<A HREF="pat4afs.htm#participants" TARGET="_mainDisplayFrame">141</A>,
<A HREF="pat4afs.htm#structure" TARGET="_mainDisplayFrame"><I>141c</I></A>
</DD>

<DT><a name="A<FONT SIZE=-1>DAPTER</FONT>"></a>A<FONT SIZE=-1>DAPTER</FONT>
<A HREF="pat4afs.htm#top" TARGET="_mainDisplayFrame"><B>139</B></A>
</DT>

<DD>compared with B<FONT SIZE=-1>RIDGE</FONT>
<A HREF="pat4bfs.htm#relatedpatterns" TARGET="_mainDisplayFrame">161</A>,
<A HREF="disc4fs.htm#versus" TARGET="_mainDisplayFrame">219</A>
</DD>

<DD>compared with D<FONT SIZE=-1>ECORATOR</FONT>
<A HREF="pat4dfs.htm#relatedpatterns" TARGET="_mainDisplayFrame">184</A>
</DD>

<DD>compared with P<FONT SIZE=-1>ROXY</FONT>
<A HREF="pat4gfs.htm#relatedpatterns" TARGET="_mainDisplayFrame">216</A>
</DD>

<DD>in catalog summary
<A HREF="chap1fs.htm#adapter" TARGET="_mainDisplayFrame">8</A>
</DD>

<DT>Adapter</DT>

<DD>participant of A<FONT SIZE=-1>DAPTER</FONT>
<A HREF="pat4afs.htm#participants" TARGET="_mainDisplayFrame">141</A>,
<A HREF="pat4afs.htm#141c" TARGET="_mainDisplayFrame"><I>141c</I></A>
</DD>

<DT><a name="adapter"></a>adapter
<A HREF="pat4afs.htm#adapterdef" TARGET="_mainDisplayFrame"><B>140</B></A>
</DT>

<DD>class adapter
<A HREF="pat4afs.htm#141c" TARGET="_mainDisplayFrame">141</A>,
<A HREF="pat4afs.htm#141c" TARGET="_mainDisplayFrame"><I>141c</I></A>
</DD>

<DD>object adapter
<A HREF="pat4afs.htm#141c" TARGET="_mainDisplayFrame">141</A>,
<A HREF="pat4afs.htm#141c" TARGET="_mainDisplayFrame"><I>141c</I></A>
</DD>

<DD>parameterized
<A HREF="pat4afs.htm#parameterized" TARGET="_mainDisplayFrame">145</A>
</DD>

<DD>pluggable, <I>see</I> <A HREF="index-P.htm#pluggable adapter" target="TEXT">pluggable adapter</A>
</DD>

<DD>two-way
<A HREF="pat4afs.htm#twoway" TARGET="_mainDisplayFrame"><B>143</B></A>,
<A HREF="pat4afs.htm#143c" TARGET="_mainDisplayFrame"><I>143c</I></A>
</DD>

<DT>adorner
<A HREF="pat4dfs.htm#adorner" TARGET="_mainDisplayFrame">179</A>
</DT>

<DT>Aggregate</DT>

<DD>participant of I<FONT SIZE=-1>TERATOR</FONT>
<A HREF="pat5dfs.htm#participants" TARGET="_mainDisplayFrame">259</A>,
<A HREF="pat5dfs.htm#259c" TARGET="_mainDisplayFrame"><I>259c</I></A>
</DD>

<DT>aggregate object
<A HREF="pat5dfs.htm#top" TARGET="_mainDisplayFrame">257</A>
</DT>

<DT><a name="aggregation"></a>aggregation
<A HREF="chap1fs.htm#agg" TARGET="_mainDisplayFrame"><B>22</B></A>,
<A HREF="chapAfs.htm#aggregation" TARGET="_mainDisplayFrame"><B>359</B></A>
</DT>

<DD>C++, defined in
<A HREF="chap1fs.htm#Cplusplus" TARGET="_mainDisplayFpared with acquaintance
<A HREF="chap1fs.htm#aggacq" TARGET="_mainDisplayFrame">23</A>
</DD>

<DD>notation for
<A HREF="chap1fs.htm#notation" TARGET="_mainDisplayFrame">23</A>
</DD>

<DD>Smalltalk, defined in
<A HREF="chap1fs.htm#Cplusplus" TARGET="_mainDisplayFrame">23</A>
</DD>

<DT>Alexander, Christopher
xiii,
<A HREF="chap1fs.htm#top" TARGET="_mainDisplayFrame">2</A>,
<A HREF="chap6fs.htm#alexander" TARGET="_mainDisplayFrame">356</A>,
<A HREF="chap6fs.htm#top" TARGET="_mainDisplayFrame">358</A>
</DT>

<DT>algorithm</DT>

<DD>avoiding dependence on
<A HREF="chap1fs.htm#depalg" TARGET="_mainDisplayFrame">24</A>
</DD>

<DD>defining steps of
<A HREF="pat5jfs.htm#deftempmeth" TARGET="_mainDisplayFrame">326</A>
</DD>

<DD>family of
<A HREF="pat5ifs.htm#families" TARGET="_mainDisplayFrame">317</A>
</DD>

<DD>skeleton
<A HREF="pat5jfs.htm#skeleton" TARGET="_mainDisplayFrame">327</A>
</DD>

<DT>AlternationExpression
<A HREF="pat5cfs.htm#244co" TARGET="_mainDisplayFrame"><I>244co</I></A>,
<A HREF="pat5kfs.htm#altexp" TARGET="_mainDisplayFrame">343</A>
</DT>

<DD>implemented in Smalltalk
<A HREF="pat5cfs.htm#smallaltexp" TARGET="_mainDisplayFrame">249</A>
</DD>

<DT>aluminum alloy
<A HREF="chap2fs.htm#aluminum" TARGET="_mainDisplayFrame">76</A>
</DT>

<DT>Ambassador, <I>see also</I> <A HREF="index-P.htm#P<FONT SIZE=-1>ROXY</FONT>" target="TEXT">P<FONT SIZE=-1>ROXY</FONT></A></DT>

<DD>C++ idiom
<A HREF="pat4gfs.htm#idiom" TARGET="_mainDisplayFrame">208</A>
</DD>

<DT>AnalogClock
<A HREF="pat5gfs.htm#clock" TARGET="_mainDisplayFrame">303</A>
</DT>

<DT>analysis object model</DT>

<DD>transforming to design object model
<A HREF="chap6fs.htm#objectmodel" TARGET="_mainDisplayFrame">353</A>
</DD>

<DT>ancestor class
<A HREF="chapAfs.htm#ancestorclass" TARGET="_mainDisplayFrame"><B>361</B></A>,
<I>see also</I> <A HREF="index-C.htm#class" target="TEXT">class, parent</A></DT>

<DT>Anderson, Bruce
xi,
<A HREF="chap6fs.htm#anderson" TARGET="_mainDisplayFrame">357</A>
</DT>

<DT>AndExp
<A HREF="pat5cfs.htm#andexp" TARGET="_mainDisplayFrame">253</A>
</DT>

<DT><a name="Andrew"></a>Andrew Toolkit</DT>

<DD>use of O<FONT SIZE=-1>BSERVER</FONT>
<A HREF="pat5gfs.htm#toolkit" TARGET="_mainDisplayFrame">303</A>
</DD>

<DT>Application
<A HREF="pat3cfs.htm#app" TARGET="_mainDisplayFrame">107</A>,
<A HREF="pat3cfs.htm#107c" TARGET="_mainDisplayFrame"><I>107c</I></A>,
<A HREF="pat5afs.htm#223o" TARGET="_mainDisplayFrame"><I>223o</I></A>,
<A HREF="pat5afs.htm#224ci" TARGET="_mainDisplayFrame"><I>224ci</I></A>,
<A HREF="pat5afs.htm#app2" TARGET="_mainDisplayFrame">231</A>,
<A HREF="pat5jfs.htm#motivation" TARGET="_mainDisplayFrame">325</A>,
<A HREF="pat5jfs.htm#325c" TARGET="_mainDisplayFrame"><I>325c</I></A>
</DT>

<DT>application programs
<A HREF="chap1fs.htm#appprog" TARGET="_mainDisplayFrame">25</A>
</DT>

<DT>ApplicationWindow
<A HREF="chap2fs.htm#appwin" TARGET="_mainDisplayFrame">53</A>,
<A HREF="chap2fs.htm#54c" TARGET="_mainDisplayFrame"><I>54c</I></A>,
<A HREF="chap2fs.htm#55c" TARGET="_mainDisplayFrame"><I>55c</I></A>,
<A HREF="pat4bfs.htm#appwin" TARGET="_mainDisplayFrame">157</A>,
<A HREF="pat5bfs.htm#233c" TARGET="_mainDisplayFrame"><I>233c</I></A>,
<A HREF="pat5bfs.htm#234c" TARGET="_mainDisplayFrame"><I>234c</I></A>
</DT>

<DT>ArrayCompositor
<A HREF="chap2fs.htm#42c" TARGET="_mainDisplayFrame"><I>42c</I></A>,
<A HREF="pat5ifs.htm#compositor" TARGET="_mainDisplayFrame">315</A>,
<A HREF="pat5ifs.htm#315c" TARGET="_mainDisplayFrame"><I>315c</I></A>,
<A HREF="pat5ifs.htm#breaks" TARGET="_mainDisplayFrame">322</A>
</DT>

<DT>ASCII7Stream
<A HREF="pat4dfs.htm#ascii7stream" TARGET="_mainDisplayFrame">183</A>,
<A HREF="pat4dfs.htm#183c" TARGET="_mainDisplayFrame"><I>183c</I></A>
</DT>

<DT>aspect of an object
<A HREF="pat5gfs.htm#aspect" TARGET="_mainDisplayFrame"><B>298</B></A>
</DT>

<DT>AssignmentNode
<A HREF="pat5kfs.htm#333c" TARGET="_mainDisplayFrame"><I>333c</I></A>
</DT>

<DT>associations, <I>see also</I> <A HREF="index-A.htm#acquaintance" target="TEXT">acquaintance, aggregation</A></DT>

<DD>in OMT
<A HREF="chapBfs.htm#association" TARGET="_mainDisplayFrame">364</A>
</DD>

</DL>

